/*
*d3_2_3.cpp
*Create by Administrator
* 2017年1月20日
* 下午3:17:52
*/
#include <iostream>
 using std::string;
 using std::cin;
 using std::cout;
 using std::endl;
int main() {
//    string s("Hello world!!!");
//    //punct_cnt的类型和 s.size 的返回类型一样
//    decltype(s.size()) punct_cnt = 0;
//    //统计s中标点符号的数量
//    for(auto c:s)
//    	if(ispunct(c))
//    		++punct_cnt;
//
//	cout << punct_cnt
//		 <<" punctuation characters in"<<s<<endl;

//	string s("Hello wolrd!!!");
//	//转换成大写形式
//	for(auto &c :s)  //对于s中的每个字符（注意：c是引用）
//		c = toupper(c); //c是一个引用，因此赋值语句将改变s中字符的值
//	cout<<s<<endl;

//	string s("some string");
//	if(!s.empty())
//		s[0]=toupper(s[0]);
//		cout<<s<<endl;

//		for(decltype(s.size()) index=0; index !=s.size() && !isspace(s[index]);++index)
//          s[index] = toupper(s[index]);
//		cout<<s <<endl;

	const string hexdigits  = "123456789ABCDEF";//可能的十六进制的字符串
	cout<<"Enter a series of numbers of between 0 and 15"
		<<" separated by spaces. Hit ENTER when finished: "
		<<endl;
	string result; //用于保存十六进制的字符串
	string::size_type n;  //用于保存从输入流读取的数
	while(cin>>n)
		if(n < hexdigits.size())  //忽略无效输入
			result += hexdigits[n];  //得到对应的十六进制数字
	cout<<" Your hex number is : " <<result <<endl;



	return 0;
}
